#pragma once

#include "ListeEtats.h"

#include <string>
#include <iostream>

using std::string;

class Etat;

class Automate {
public:
	Automate();
	Automate(string fichier);
	~Automate();

	Etat* getEtat(unsigned id) const;
	void ajouterEtat(unsigned id, bool initial = false, bool terminal = false);
	void retirerEtat(unsigned id);
	void genererFichierAutomate(string fichier);

	Etat* getEtatInitial() const;

	bool estDeterministe();
	Automate determiniser();
	bool reconnaitreMot(string mot);

	void print();

private:
	ListeEtats liste;
	
};